DSP gateway Architecture in Detail
(Mr. Yoshitaka Hirase Nokia Japan)

[Translator's comment: see powerpoint presentation material DSPGateway_Celf_Jamboree6.ppt (in English)]

* What is DSP gateway?
 Gateway to use DSP from Linux side.

* What is OMAP?
 ARM based processor, for mobile devices
 omap has its own tree in linux, maintained by a NOKIA employee.

* Features of DSP GW
 Open source
 Hard to reduce overhead between ARM and DSP
 Task management for codec etc.
 For movie, more than one tasks can operate (video, audio, ...) [on DSP]
 "Dynamic Loader" enters/delete tasks.
 DSP gateway is being developed on community basis

* DSP interface
 Device "DSP task device" is created.
 Through this device, DSP is accessed.

* Inter Processor Communication
  Uses mailbox
  Put a command in DSP-understandable protocol into the mailbox, and DSP processes it.

* commands using mailbox
 Commands are in the table on DSP
 Choose one from the table and use

* task mngment : dynamic loader

      DSP			ARM
-------------------    -------------------------------
DSP executes            Application on Linux writes command onto
corresponding command   device(dsp supplied device) with open()
===================    ==============================
  DSP gateway      <->	  DSP gateway
-------------------    ------------------------------

* Demo
 Login 770 with ssh, and replay music
 From log, can see the DSP processing block sent data.
 As paused, task on DSP is hold.
 Once terminated, task on DSP becomes "notask".
 Replaying movie shows multiple tasks running on DSP

* performavce evaluation
 To implement onto a product, perfomance evaluation has been severe while developing.

* Q&A
 - I guess there is overhead when loading a task onto DSP. What did you do?
 Did you keep memory open, or gain performance by keeping tasks on memory?

   Memory was used for replaying contents as much as possible. Otherwise,
   as memory shared, memory becomes tight.

 - Do you have any plan for the case where DSP actively updates command/data?

   We are thinking of Voice over IP, and then we have to study it.

 - As DSP is not always running, is its memory area released?

   Kernel area for DSP is allocated on bootup, and kept on.
   It would be difficult to release it.





  

